package bibliotheque;

import java.io.Serializable;
import java.rmi.RemoteException;

public interface Algo {
	// Deux méthodes pour gérer la communication entre portes
	// Reception : méthode appelée par PorteImpl (qui transmet un message en provenance du Reso)
	public void receiveMessage(int from, int to, Serializable msg) throws RemoteException;
	// Envoi
	public void sendMessage(int from, int to, Serializable msg) throws RemoteException;
	
	// Quand une demande provient de ServeurVoituresImpl, PorteImpl la transmet à l'algorithme pour traitement
	public void demandeEntree() throws RemoteException, InterruptedException;
	public void demandeSortie() throws RemoteException, InterruptedException;

	// Méthode appelée au démarrage, lorsque toutes les portes sont déclarées
	public void init() throws RemoteException;
	

}
